# 前言：需要先制作已经处理的文件夹，制作文件名列表json文件，与“获取根目录下的文件名称列表.py”的代码配合使用

import os
import json
import shutil

# 读取json文件中的文件名列表
with open(r'C:\Users\lenovo\Desktop\app\models\file_list.json', 'r', encoding='utf-8') as f:
    json_file_list = json.load(f)

# 源文件目录
source_dir = r'E:\文件\分类文件\docx'

# 创建目标文件夹
processed_dir = os.path.join(source_dir, '已处理')
unprocessed_dir = os.path.join(source_dir, '待处理')

# 如果目标文件夹不存在则创建
if not os.path.exists(processed_dir):
    os.makedirs(processed_dir)
if not os.path.exists(unprocessed_dir):
    os.makedirs(unprocessed_dir)

# 遍历源目录下的所有文件
for filename in os.listdir(source_dir):
    # 跳过目录
    if os.path.isdir(os.path.join(source_dir, filename)):
        continue
        
    # 获取不带扩展名的文件名
    name_without_ext = os.path.splitext(filename)[0]
    
    source_file = os.path.join(source_dir, filename)
    
    # 判断文件名是否在json列表中
    if any(name_without_ext + '.json' in json_name for json_name in json_file_list):
        # 移动到已处理文件夹
        target_file = os.path.join(processed_dir, filename)
        shutil.move(source_file, target_file)
        print(f'已移动到已处理文件夹: {filename}')
    else:
        # 移动到待处理文件夹
        target_file = os.path.join(unprocessed_dir, filename)
        shutil.move(source_file, target_file)
        print(f'已移动到待处理文件夹: {filename}')

print('文件分类完成!')
